The Open Mobile Alliance (OMA) has provided a set of SUPL protocols to comprehensively standardize SUPL services. The SUPL protocols provide accurate location for an SUPL Enabled Terminal (SET) with an assisted-Global Positioning System (AGPS) ability without any re-construction to devices of an existing network, and define an SET-initiated positioning procedure, a network-initiated positioning procedure and message interfaces in the positioning procedures. In the SET-initiated positioning procedure, the SET initiatively sends a positioning request to an SUPL Location Platform (SLP) and obtains accurate location of the SET through subsequent positioning procedure adopting positioning technologies such as AGPS. In the network-initiated positioning procedure, a Mobile Location Service (MLS) application at the network side sends a positioning request of a client to the SLP through an SUPL Agent, and obtains the accurate location of the target SET through subsequent SUPL positioning procedure adopting positioning technologies such as AGPS.
FIG. 1 is a message flow of an SET-initiated SUPL procedure with Home-SLP (H-SLP) positioning according to the related art, mainly includes the following blocks.
Block 101: Upon the receipt of a positioning request from an application running on the target SET, an SUPL Agent on the target SET sends an SUPL START message to the H-SLP of the target SET to start a positioning session with the H-SLP.
If the target SET is not already attached to a Packet Data Network (PDN) when the positioning request is sent, the target SET attaches itself to the PDN or establishes a circuit switched data connection to attach itself to the PDN through the circuit switched data connection.
The SUPL Agent may use a default address provisioned by a home network of the target SET to establish a secure IP connection to the H-SLP.
The SUPL START message includes session id, location identifier (lid) and SET capabilities. The lid is a location identifier identifying a cell of the target SET and used to describe a coarse position of the target SET. The SET capabilities include posmethod(s) supported by the target SET (e.g., target SET-Assisted A-GPS, target SET-Based AGPS) and associated positioning protocols (e.g., Radio Resource Location service Protocol (RRLP), Radio Resource Control (RRC) and Telecommunication Industries Association (TIA)-801).
All messages sent to or received by the target SET are forwarded by the SUPL Agent.
If the H-SLP includes a Home-SUPL Location Centre (H-SLC) and a Home-SUPL Positioning Centre (H-SPC), the H-SLP in this block specifically refers to the H-SLC.
Block 102: The H-SLP verifies whether a previously computed position estimate of the target SET stored by the H-SLP meets a requested Quality of Position (QoP). If the previously computed position estimate of the target SET meets the requested QoP, proceed to Block 110; otherwise, proceed to Block 103.
The QoP may include required positioning accuracy, response time and maximum location age. For example, supposing that the maximum location age of the position estimate of the target SET stored by the H-SLP is 120 seconds, then a position estimate of the target SET obtained 120 seconds ago cannot be used as a current position estimate of the target SET.
If the H-SLP includes an H-SLC and an H-SPC, the H-SLP in this block specifically refers to the H-SLC.
Block 103: The H-SLP verifies whether the target SET is currently roaming. If the target SET is currently roaming, proceed to Block 104; otherwise, proceed to Block 106.
If the H-SLP includes an H-SLC and an H-SPC, the H-SLP in this block specifically refers to the H-SLC.
Block 104: The H-SLP sends a Standard SUPL Roaming Location Immediate Request (SSRLIR) message carrying the lid which is contained in the SUPL START message to a Visitor-SLP (V-SLP) where the target SET is currently roaming, to notify the V-SLP to convert the lid into a requested position estimate, e.g., longitude and latitude.
If the H-SLP includes an H-SLC and an H-SPC, the H-SLP in this block specifically refers to the H-SLC; if the V-SLP includes a V-SLC and a V-SPC, the V-SLP in this block specifically refers to the V-SLC.
Block 105: The V-SLP sends a Standard SUPL Roaming Location Immediate Answer (SSRLIA) message carrying the position estimate of the target SET corresponding to the lid to the H-SLP.
The position estimate of the target SET corresponding to the lid is a coarse position of the target SET.
If the H-SLP includes an H-SLC and an H-SPC, the H-SLP in this block specifically refers to the H-SLC; if the V-SLP includes a V-SLC and a V-SPC, the V-SLP in this block specifically refers to the V-SLC.
Block 106: The H-SLP verifies whether the position estimate of the target SET corresponding to the lid contained in the SUPL START message meets the requested QoP. If the position estimate of the target SET corresponding to the lid contained in the SUPL START message meets the requested QoP, proceed to Block 110; otherwise, proceed to Block 107.
If the H-SLP includes an H-SLC and an H-SPC, the H-SLP in this block specifically refers to the H-SLC.
Block 107: The H-SLP returns an SUPL RESPONSE message to the target SET.
The SUPL RESPONSE message includes the session id but no H-SLP address, to indicate to the target SET that a new connection shall not be established.
The SUPL RESPONSE message further includes the posmethod(s) supported by the H-SLP, the posmethod(s) supported by the H-SLP is (are) determined by the H-SLP according to the posmethod(s) contained in the SUPL START message.
If the H-SLP includes an H-SLC and an H-SPC, the H-SLP that returns the SUPL RESPONSE message to the target SET in this block specifically refers to the H-SLC, the posmethod(s) supported by the H-SLP contained in the SUPL RESPONSE message specifically refers to the posmethod(s) supported by the H-SPC, and the SUPL RESPONSE message further carries the address of the H-SPC.
Block 108: After receiving the SUPL RESPONSE message from the H-SLP, the target SET sends an SUPL POS INIT message to the H-SLP.
The SUPL POS INIT message includes at least session id, lid and target SET capabilities. The target SET capabilities include the posmethod(s) supported by the target SET, e.g., target SET-Assisted A-GPS, target SET-Based AGPS, and associated positioning protocols, e.g., RRLP, RRC, TIA-801.
The target SET may provide Network Measurement Report (NMR) specific for the radio technology being used, e.g., for GSM: Time Advance (TA), Received signal LEVeL (RXLEV).
The target SET may also provide its position estimate, if supported by both the target SET and the H-SLP, to the H-SLP. The position estimate provided by the target SET is previously computed or obtained by the target SET and stored by the target SET. The H-SLP may use the position estimate provided by the target SET as a reference, or may not consider the position estimate.
The target SET may also include a first SUPL POS element in the SUPL POS INIT message, and may also set a Requested Assistance Data element in the SUPL POS INIT message to indicate assistance data needed by the target SET in the SUPL positioning procedure.
If the H-SLP includes an H-SLC and an H-SPC, the H-SLP in this block specifically refers to the H-SPC.
Block 109: The H-SLP determines a posmethod that will be adopted eventually according to the posmethod(s) supported by the target SET contained in the SUPL POS INIT message, and starts the SUPL positioning procedure. After the positioning procedure, the H-SLP obtains the position estimate of the target SET.
The posmethod determined by the H-SLP is supported by both the H-SLP and the target SET.
In the SUPL positioning procedure, the target SET and the H-SLP may exchange several successively positioning procedure messages. The H-SLP may calculate the position estimate of the target SET based on positioning measurements, e.g., target SET-Assisted A-GPS, or the target SET calculates the position estimate based on assistance data obtained from the H-SLP, e.g., target SET-Based A-GPS.
If the H-SLP includes an H-SLC and an H-SPC, the H-SLP in this block specifically refers to the H-SPC.
Block 110: The H-SLP sends an SUPL END message to the target SET, to notify to the target SET that the positioning session is finished.
If the H-SLP needs to return the previous computed position estimate of the target SET stored by the H-SLP to the target SET, or return the coarse position of the target SET obtained based on the lid in the SUP START message to the target SET, the H-SLP carries the position estimate or the coarse position in the SUPL END message. If an SUPL positioning procedure has been performed, the H-SLP determines whether to carry the position estimate of the target SET in the SUPL END message according to the posmethod and positioning protocol adopted. While sending the SUPL END message, the H-SLP releases the secure IP connection and resources related to this positioning session. The target SET also releases resources related to this positioning session after receiving the SUPL END message.
If the H-SLP includes an H-SLC and an H-SPC, the H-SLP in this block specifically refers to the H-SPC.
FIG. 1 is a message flow of a target SET-initiated SUPL positioning procedure with H-SLP positioning. In case that the target SET is roaming, the SUPL positioning procedure may also be implemented by the V-SLP where the target SET is roaming cooperating with the target SET. FIG. 2 is a message flow of a target SET-initiated roaming case with V-SLP positioning according to the related art. As shown in FIG. 2, it includes the following blocks.
Block 201 is similar to Block 101.
Block 202: The H-SLP verifies whether a previously computed position estimate of the target SET stored by the H-SLP meets the requested QoP. If the previously computed position estimate of the target SET meets the requested QoP, proceed to Block 212; otherwise, proceed to Block 203.
Block 203: The H-SLP verifies that the target SET is currently roaming.
Block 204: The H-SLP sends an SSRLIR message carrying the lid that is contained in the SUPL START message to the V-SLP where the target SET is roaming to notify the V-SLP to convert the lid into a requested position estimate, e.g., longitude and latitude.
Specifically, the SSRLIR message carries all the contents contained in the SUPL START message.
Block 205: The V-SLP verifies whether the position estimate of the target SET corresponding to the lid contained in the SUPL START message meets the requested QoP. If the position estimate of the target SET corresponding to the lid contains in the SUPL START message meets the requested QoP, the V-SLP returns an SSRLIA message tunneling an SUPL END message to the H-SLP, and proceed to Block 212; otherwise, proceed to Block 206.
The SUPL END message includes the position estimate of the target SET.
The V-SLP will also verify, after receiving the SSRLIR message, whether the V-SLP supports the positioning.
Block 206: The V-SLP returns an SSRLIA message tunneling an SUPL RESPONSE message to H-SLP.
The SUPL RESPONSE message includes at least session id and posmethod(s) supported by the V-SLP. The posmethod(s) supported by the V-SLP is (are) determined by the V-SLP based on the posmethod(s) contained in the SUPL START message in the SSRLIR message.
Block 207: the H-SLP forwards the SUPL RESPONSE message to the target SET after receiving the SSRLIA message.
The SUPL RESPONSE message includes session id and the posmethod(s) supported by the V-SLP, etc.
Block 208: The target SET sends an SUPL POS INIT message to the H-SLP after receiving the SUPL RESPONSE message.
The SUPL POS INIT message includes at least session id, lid and target SET capabilities. The target SET capabilities include the posmethod(s) supported by the target SET, etc.
Block 209: The H-SLP forwards the SUPL POS INIT message to the V-SLP after receiving the SUPL POS INIT message.
Block 210: The V-SLP determines the posmethod that will be adopted eventually according to the posmethod(s) supported by the target SET contained in the SUPL POS INIT message, and starts the SUPL positioning procedure. After the positioning procedure, the V-SLP obtains the position estimate of the target SET.
The posmethod determined by the V-SLP is supported by both the V-SLP and the target SET.
In the SUPL positioning procedure, the target SET and the V-SLP may exchange several successive positioning procedure messages which are forwarded by the H-SLP. The V-SLP calculates the position estimate based on the positioning measurements received from the target SET, e.g., target SET-Assisted A-GPS, or calculates the position estimate based on assistance data obtained from the V-SLP, e.g., target SET-based A-GPS.
Block 211: The V-SLP sends the position estimate of the target SET to the H-SLP and releases resources related to the positioning session.
Block 212 is similar to Block 110.
In practical applications, the V-SLP may include a V-SLC and a V-SPC. Specifically, the SUPL positioning procedure may be implemented by the V-SPC cooperating with the target SET after a target SET is roaming. FIG. 3 is a message flow of a target SET-initiated roaming case with V-SPC positioning. As shown in FIG. 3, the detailed blocks are given as follows.
Block 301 is similar to Block 101.
Block 302: The H-SLP verifies whether a previously computed position estimate of the target SET stored by the H-SLP meets the requested QoP. If the previously computed position estimate of the target SET meets the requested QoP, the H-SLP sends an SUPL END message carrying the position estimate of the target SET to the target SET and ends the procedure; otherwise, proceed to Block 303.
Block 303: The H-SLP detects that the target SET is currently roaming.
Block 304: The H-SLP sends an SSRLIR message carrying the lid that is contained in the SUPL START message to the V-SLC where the target SET is currently roaming to notify the V-SLC to convert the lid into a requested position estimate, e.g., longitude and latitude.
Specifically, the SSRLIR message carries all the contents contained in the SUPL START message.
Block 305: The V-SLC verifies whether the position estimate of the target SET corresponding to the lid contained in the SUPL START message meets the requested QoP. If the position estimate of the target SET corresponding to the lid contained in the SUPL START message meets the requested QoP, proceed to Block 311; otherwise, proceed to Block 306.
The V-SLP will also verify, after receiving the SSRLIR message, whether it supports the positioning.
Block 306: The V-SLC returns an SSRLIA message tunneling an SUPL RESPONSE message to H-SLP.
The SUPL RESPONSE message includes at least session id, posmethod(s) supported by the V-SPC and the address of the V-SPC. The posmethod(s) supported by the V-SPC is determined by the V-SPC based on the posmethod(s) contained in the SUPL START message in the SSRLIR message.
Block 307: The H-SLP forwards the SUPL RESPONSE message to the target SET after receiving the SSRLIA message.
The SUPL RESPONSE message includes session id, the posmethod(s) supported by the V-SPC, the address of the V-SPC, etc.
Block 308: The target SET sends an SUPL POS INIT message to the V-SPC after receiving the SUPL RESPONSE message.
Block 309: The V-SPC determines the posmethod that will be adopted eventually according to the posmethod(s) supported by the target SET contained in the SUPL POS INIT message and starts the SUPL positioning procedure. After the positioning procedure, the V-SPC obtains the position estimate of the target SET.
The posmethod determined by the V-SPC is supported by both the V-SPC and the target SET.
In the SUPL positioning procedure, the target SET and the V-SPC may exchange several successive positioning procedure messages. The V-SPC may calculate the position estimate of the target SET based on the received positioning measurements, e.g., the target SET-Assisted A-GPS, or the target SET may calculate the position estimate based on the assistance obtained from the V-SPC, e.g., target SET-Based A-GPS.
Block 310: After the SUPL positioning procedure, the V-SPC sends the position estimate of the target SET to the H-SLP through the V-SLC.
Block 311 is similar to Block 110 and the “H-SLP” in Block 110 should be replaced by “V-SPC”.
FIG. 1-FIG. 3 are message flows of target SET-initiated SUPL positioning procedures. A network-initiated SUPL procedure will be hereinafter described.
FIG. 4 is a message flow of a network-initiated SUPL case with H-SLP positioning. As shown in FIG. 4, it mainly includes the following blocks.
Block 401: An SUPL Agent at the network side, associated with the H-SLP of the target SET, issues a Mobile Location Protocol (MLP) Standard Location Immediate Request (SLIR) message carrying a client-id of a client and a ms-id of the target SET to the H-SLP.
The client in the positioning includes entities such as SET, Service Provider (SP), etc.
If the H-SLP includes an H-SLC and an H-SPC, the H-SLP in this block specifically refers to the H-SLC.
Block 402: The H-SLP verifies, after receiving the MLP SLIR message, whether a previously computed position estimate of the target SET stored by the H-SLP meets the requested QoP. If the previously computed position estimate of the target SET stored by the H-SLP meets the requested QoP, proceed to Block 403; otherwise, proceed to Block 408.
In this block, after receiving the MLP SLIR message, the H-SLP shall authenticate the SUPL Agent and check, based on the client-id received, whether the SUPL Agent is authorized for the service it requests. Further, based on the ms-id received, the H-SLP shall apply subscriber privacy against the client-id.
If the H-SLP includes an H-SLC and an H-SPC, the H-SLP in this block specifically refers to the H-SLC.
Block 403: The H-SLP verifies whether privacy information of the target SET includes information requiring notification and/or verification by the target SET in the positioning procedure. If the privacy information of the target SET includes information requiring notification and/or verification by the target SET in the positioning procedure, proceed to Block 404; otherwise, proceed to Block 417.
The privacy information of the target SET is stored in a Privacy Checking Entity (PCE). The H-SLP needs to obtain the privacy information of the target SET from the PCE first, and search the privacy information for the information that requires notification and/or verification by the target SET in the positioning procedure.
If the H-SLP includes an H-SLC and an H-SPC, the H-SLP in this block specifically refers to the H-SLC.
Block 404: The H-SLP verifies whether the target SET is currently roaming.
In this block, the H-SLP may also verify whether the target SET supports the SUPL protocol. If the target SET supports the SUPL protocol, proceed to Block 405; otherwise, the H-SLP directly returns an MLP Standard Location Immediate Answer (SLIA) message carrying positioning failure information to the SUPL Agent and ends the procedure.
If the H-SLP includes an H-SLC and an H-SPC, the H-SLP in this block specifically refers to the H-SLC.
Block 405: The H-SLP sends an SUPL INIT message which carries a Notification element and a posmethod element with value of “no position” to the target SET. The Notification element is used for determining a manner that the target SET returns a verification result.
The SUPL INIT message includes session id and may also include the QoP, the address of the H-SLP, a Key Id and a Message Authentication Code (MAC).
For security, the H-SLP calculates a Hash of the SUPL INIT message according to an algorithm defined by the SUPL protocol before sending the SUPL INIT message, and carries the Hash in a verification field element of the SUPL INIT message to send to the target SET. Likewise, the target SET calculates the Hash of the SUPL INIT message according to the algorithm defined by the SUPL protocol after receiving the SUPL INIT message, and verifies if the Hash calculated by the target SET matches that sent by the H-SLP. If the Hash calculated by the target SET matches that sent by the H-SLP, the target SET accepts the SUPL INIT message; otherwise, the target SET neglects the SUPL INIT message. After a timer waiting for an SUPL INIT response expires, the H-SLP sends an MLP SLIA message carrying a positioning failure element to the SUPL Agent.
The SUPL INIT message may be a Wireless Application Protocol (WAP) PUSH or a Short Message Service (SMS) trigger.
If the H-SLP includes an H-SLC and an H-SPC, the H-SLP in this block specifically refers to the H-SLC.
Block 406: After receiving the SUPL INIT message, the target SET sends an SUPL END message to the H-SLP according to the Notification element carried in the SUPL INIT message.
If the Notification element requires the target SET to verify the positioning procedure, the SUPL END message should carry a verification result, i.e., access granted or access denied.
If a Key Id and a MAC is present in the received SUPL INIT message, the target SET may use the Key Id and the MAC to determine whether the SUPL INIT message is authentic. If the SUPL INIT message is authentic, the target SET processes the SUPL INIT message; otherwise, the target SET neglects the SUPL INIT message. After the timer waiting for the SUPL INIT response expires, the H-SLP returns an MLP SLIA message carrying a positioning failure element to the SUPL Agent and ends the procedure.
If the target SET is not already attached to the PDN when receiving the SUPL INIT message, the target SET will attach itself to the PDN or establish a circuit switched data connection so as to attach itself to the PDN through the circuit switched data connection.
Generally, the target SET may use the address of the H-SLP provisioned by the home network of the H-SLP, or the address of the H-SLP carried in the SUPL INIT message, to establish a secure IP connection to the H-SLP. If the SUPL INIT message does not carry the address of the H-SLP, the target SET uses the default address of the H-SLP configured by the target SET to establish a secure IP connection to the H-SLP.
If the H-SLP includes an H-SLC and an H-SPC, the H-SLP in this block specifically refers to the H-SLC.
Block 407: After receiving the SUPL END message, the H-SLP verifies whether the SUPL END message carries the access denied element. If the SUPL END message carries the access denied element, the H-SLP sends an MLP SLIA message carrying a positioning failure element to the SUPL Agent and ends the procedure; otherwise, the H-SLP sends an MLP SLIA message carrying the position estimate of the target SET and end the procedure.
If the H-SLP includes an H-SLC and an H-SPC, the H-SLP in this block specifically refers to the H-SLC.
Block 408: The H-SLP verifies whether the target SET is currently roaming and stores the verification result.
In this block, the H-SLP may also verify whether the target SET supports the SUPL protocol. If the target SET supports the SUPL protocol, proceed to Block 409; otherwise, the H-SLP directly returns an MLP SLIA message carrying the positioning failure element to the SUPL Agent and ends the procedure.
If the H-SLP includes an H-SLC and an H-SPC, the H-SLP in this block specifically refers to the H-SLC.
Block 409: The H-SLP sends an SUPL INIT message carrying the client-id to the target SET.
The SUPL INIT message includes session id and posmethod element, and may also include the QoP, the address of the H-SLP, a Key Id and a MAC.
If the privacy information of the target SET indicates that notification and/or verification by the target SET in the positioning procedure are/is required, the SUPL INIT message shall also carry a Notification element used for determining a manner that the target SET returns the verification result.
If the H-SLP includes an H-SLC and an H-SPC, the H-SLP that returns the SUPL INIT message to the target SET in this block specifically refers to the H-SLC, and the address of the H-SLP contained in the SUPL INIT message specifically refers to the address of the H-SPC.
Block 410: After receiving the SUPL INIT message, the target SET verifies whether the SUPL INIT message carries a Notification element. If the SUPL INIT message carries a Notification element, proceed to Block 411; otherwise, proceed to Block 413.
Block 411: The target SET verifies, according to the client-id contained in the SUPL INIT message, whether the target SET allows to be positioned. If the target SET allows to be positioned, proceed to Block 413; otherwise, proceed to Block 412.
Block 412: The target SET returns an SUPL END message carrying positioning denied information to the H-SLP, and the H-SLP returns an MLP SLIA message carrying a positioning failure element to the SUPL Agent after receiving the SUPL INIT message and ends the procedure.
If the H-SLP includes an H-SLC and an H-SPC, the H-SLP in this block specifically refers to the H-SLC.
Block 413: The target SET sends an SUPL POS INIT message to the H-SLP.
The SUPL POS INIT message in this block is similar to that in Block 108 shown in FIG. 1.
If the H-SLP includes an H-SLC and an H-SPC, the H-SLP in this block specifically refers to the H-SPC.
Block 414: The H-SLP verifies, after receiving the SUPL POS INIT message, whether the position estimate of the target SET corresponding to the lid contained in the SUPL POS INIT message meets the requested QoP. If the position estimate of the target SET corresponding to the lid contained in the SUPL POS INIT message meets the requested QoP, proceed to Block 416; otherwise, proceed to Block 415.
If the target SET is currently roaming, the H-SLP sends the lid contained in the SUPL POS INIT message to the V-SLP through a Standard SUPL Roaming Position (SSRP) message after receiving the SUPL POS INIT message. The V-SLP converts the lid into a requested position estimate of the target SET and sends the position estimate to the target SET through an SSRP message. If the target SET is not currently roaming, it is the H-SLP that converts the lid into the location of the target SET.
If the H-SLP includes an H-SLC and an H-SPC, the H-SLP in this block specifically refers to the H-SPC. If the V-SLP includes a V-SLC and a V-SPC, the V-SLP in this block specifically refers to the V-SLC.
Block 415: The H-SLP determines the posmethod that will be adopted eventually according to the posmethod(s) supported by the target SET contained in the SUPL POS INIT message and starts the SUPL positioning procedure. After the positioning procedure, the H-SLP obtains the position estimate of the target SET.
If the H-SLP includes an H-SLC and an H-SPC, the H-SLP in this block specifically refers to the H-SPC.
As can be seen from the above, this block is similar to Block 109 shown in FIG. 1.
Block 416: The H-SLP sends an SUPL END message to the target SET.
If the position estimate of the target SET corresponding to the lid contained in the SUPL POS INIT message meets the requested QoP, the H-SLP carries the position estimate of the target SET in the SUPL END message. If the H-SLP has performed an SUPL positioning procedure, the H-SLP determines whether to carry the position estimate of the target SET in the SUPL END message according to the posmethod and positioning protocol adopted. After receiving the SUPL END message, the target SET releases resources related to this positioning session.
If the H-SLP includes an H-SLC and an H-SPC, the H-SLP in this block specifically refers to the H-SPC.
Block 417: The H-SLP sends an MLP SLIA message carrying the position estimate of the target SET to the SUPL Agent.
The position estimate carried in the MLP SLIA message is previously calculated by the H-SLP, or is corresponding to the lid carried in the SUPL POS INIT message, or is obtained in the SUPL positioning procedure.
The H-SLP releases resources related to this positioning session when sending the MLP SLIA message.
If the H-SLP includes an H-SLC and an H-SPC, the H-SLP in this block specifically refers to the H-SPC.
FIG. 4 is a message flow of a network-initiated SUPL case with H-SLP positioning. Similar to the target SET-initiated roaming case, the network-initiated SUPL positioning procedure may also be implemented by the V-SLP where the target SET is roaming cooperating with the target SET. FIG. 5 is a message flow of a network-initiated roaming case with V-SLP positioning. As shown in FIG. 5, the detailed blocks are given as follows.
Block 501 is similar to Block 401.
Block 502 is similar to Block 402, “proceed to Block 403; otherwise, proceed to Block 408” in Block 402 should be replaced by “proceed to Block 503; otherwise, proceed to Block 508”.
Block 503 is similar to Block 403, and “proceed to Block 404; otherwise, proceed to Block 417” in Block 403 should be replaced by “proceed to Block 504; otherwise, proceed to Block 517”.
Block 504 is similar to Block 404, and the difference is that if the H-SLP verifies that the target SET supports the SUPL protocol, proceed to Block 505.
Blocks 505-507 are similar to Blocks 405-407.
Block 508: The H-SLP verifies whether the target SET is currently roaming and stores the verification result, sends the session id, a mobile subscriber identifier (msid) and the QoP to the V-SLP where the target SET is roaming through an SSRLIR message. After receiving the SSRLIR message, the V-SLP returns the session id to the H-SLP through an SSRLIA message.
Block 509 is similar to Block 409.
Block 510 is similar to Block 410, and “proceed to Block 411; otherwise, proceed to Block 413” in Block 410 should be replaced by “proceed to Block 511; otherwise, proceed to Block 513”.
Block 511 is similar to Block 411, and “proceed to Block 413; otherwise, proceed to Block 412” in Block 411 should be replaced by “proceed to Block 513; otherwise, proceed to Block 512”.
Blocks 512-513 are similar to Blocks 412-413.
Block 514: After receiving the SUPL POS INIT message, the H-SLP forwards the SUPL POS INIT message to the V-SLP; after receiving the SUPL POS INIT message, the V-SLP verifies whether the position estimate of the target SET corresponding to the lid carried in the SUPL POS INIT message meets the requested QoP. If the position estimate of the target SET corresponding to the lid carried in the SUPL POS INIT message meets the requested QoP, the V-SLP sends the position estimate of the target SET to the H-SLP and releases resources related to the positioning session and proceed to Block 516; otherwise, proceed to Block 515.
Block 515 is similar to Block 415, and the difference is that “H-SLP” in Block 415 should be replaced by “V-SLP”, and after receiving the position estimate of the target SET, the V-SLP sends the position estimate of the target SET to the H-SLP and releases resources related to the positioning session.
In the SUPL positioning procedure, the target SET and the V-SLP may exchange several successive positioning procedure messages which are forwarded by the H-SLP.
Blocks 516-517 are similar to Blocks 416-417.
Likewise, corresponding to the SET-initiated positioning procedure, the V-SLP may include a V-SLC and a V-SPC in practical applications. Specifically, the SUPL positioning procedure may be implemented by the V-SPC cooperating with the target SET after the target SET is roaming. FIG. 6 is a message flow of a network-initiated roaming case with V-SPC positioning. As shown in FIG. 6, the differences between FIG. 6 and FIG. 4 are given as follows.
Block 601 is similar to Block 401.
Block 602 is similar to Block 402, and “proceed to Block 403; otherwise, proceed to Block 408” in Block 412 should be replaced by “proceed to Block 603; otherwise, proceed to Block 608”.
Block 603 is similar to Block 403, and “proceed to Block 404; otherwise, proceed to Block 417” in Block 403 should be replaced by “proceed to Block 604; otherwise, proceed to Block 618”.
Block 604 is similar to Block 404, and the difference is that if the H-SLP verifies that the target SET supports the SUPL protocol, proceed to Block 605.
Blocks 605-607: are similar to Blocks 405-407.
Block 608: The H-SLP verifies whether the target SET is currently roaming and stores the verification result and sends the session id, the msid and the QoP to the V-SLC where the target SET is roaming through an SSRLIR message; the V-SLC returns the session id, the address of the V-SLC to the H-SLP through an SSRLIA message after receiving the SSRLIR message.
Block 609 is similar to Block 409.
Block 610 is similar to Block 410, and “proceed to Block 411; otherwise, proceed to Block 413” in Block 410 should be replaced by “proceed to Block 611; otherwise, proceed to Block 613”.
Block 611 is similar to Block 411, and “proceed to Block 413; otherwise, proceed to Block 412” in Block 411 should be replaced by “proceed to Block 613; otherwise, proceed to Block 612”.
Block 612 is similar to Block 412.
Block 613: The target SET sends an SUPL POS INIT message to the V-SPC.
Block 614: After receiving the SUPL POS INIT message, the V-SPC converts the lid carried in the SUPL POS INIT message into the position estimate of the target SET, and verifies whether the position estimate of the target SET corresponding to the lid meets the requested QoP. If the position estimate of the target SET corresponding to the lid meets the requested QoP, proceed to Block 615; otherwise, proceed to Block 616.
The conversion of the lid into the position estimate of the target SET may also be implemented by the V-SLC.
Block 615: The V-SPC sends the position estimate of the target SET to the H-SLP, and proceed to Block 617.
Block 616 is similar to Block 415, and the difference is that “H-SLP” in Block 415 is to be replaced by “V-SPC”, and the V-SPC sends the position estimate of the target SET to the H-SLP after obtaining the position estimate of the target SET.
Block 617 is similar to Block 416, and “H-SLP” in Block 416 should be replaced by “V-SPC”.
Block 618 is similar to Block 417.
As can be seen from above, in the SET-initiated and the network-initiated SUPL procedures, only the target SET or the client initiating the positioning request can obtain the position estimate of the target SET. If granted by the target SET, the SLP, e.g., the H-SLP and the V-SLP may also obtain the position estimate of the target SET. However, along with the development of communication technologies, location services are becoming increasingly richer. In some positioning procedures, besides the target SET or the client initiating the positioning request, a third party client may desire to obtain the position estimate of the target SET. For example, supposing that SET1 is able to initiate an emergency positioning request and SET2 is a guardian of SET1. Then under emergency, the SET1 starts an emergency positioning function to initiate a self-positioning request to the H-SLP. After the positioning succeeds, the position estimate of the SET1 is informed to the SET2. More specifically, for example, when pursuing an escaped criminal, a mobile terminal of a police station may initiate, acting as a client, a positioning request to the H-SLP through the SUPL Agent. After obtaining the position estimate of the escaped criminal, the H-SLP needs to inform the client of the position estimate but also related terminals in the police station. There are no corresponding specifications in the current SUPL protocol.